import Logger from '../../utils/Logger'
import TableUtils from '../../DBUtils/DBUtils';

const logger = Logger.getLogger('InnerTableRenderUtils')


const RenderUtils = {
  tableNameSet: new Set(),
  bindRender(tableSchema, tableName, innerTableComponent) {
    // 这个地方把整个组件拿到了
    const {fieldMap} = innerTableComponent;
    if (this.tableNameSet.has(tableName)) {
      return tableSchema;
    }

        // 返回的10条数据
        tableSchema.forEach(col => {
          const field = fieldMap.get(col.key);
          // 这里在进行无数据判断
          if (!field) {  // 这种情况理论上不会出现
            logger.warn('unknown tableSchema col: %o', col);
            return;
          }
    
          // 用户自己配置的render最优先
          if (field.render) {
            col.render = field.render.bind(innerTableComponent);  // 绑定this
          }
        });

      const ignoreCache = TableUtils.shouldIgnoreSchemaCache(tableName);
      if (!ignoreCache) {
        this.tableNameSet.add(tableName);
      }
      return tableSchema;
  }
}

export default RenderUtils